package com.fuyao.cloud.admin.api.feign;

import com.fuyao.cloud.admin.api.dto.SysNumberDTO;
import com.fuyao.cloud.common.core.constant.ServiceNameConstants;
import com.fuyao.cloud.common.core.util.R;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;

/**
 * @author cloud
 * @date 2020/5/12
 * <p>
 * 查询参数相关
 */
@FeignClient(contextId = "remoteNumberService", value = ServiceNameConstants.UPMS_SERVICE)
public interface RemoteNumberService {


	/**
	 * 极据类型和编码获取编码 count值 。
	 *
	 * @param sysNumberDTO 参数对象
	 * @return count值 。
	 */
	@ApiOperation(value = "查询编码数值", notes = "查询编码数值")
	@PostMapping("/sysservernumber/getNumberValue")
	R<Long> getNumberValue(@RequestBody SysNumberDTO sysNumberDTO);

	/**
	 * 根据类型和编码+格式化位数 返回编码
	 *
	 * @param sysNumberDTO 参数对象
	 * @return 编码 xx.xxx0001
	 */
	@ApiOperation(value = "根据传入编码+格式化数值位数生成编码", notes = "根据传入父级编码+编码+格式化数值位数生成编码")
	@PostMapping("/sysservernumber/getNumberStr")
	R<String> getNumberStr(@RequestBody SysNumberDTO sysNumberDTO);

	/**
	 * 根据 父级编码+类型和编码+格式化位数 返回编码
	 *
	 * @param sysNumberDTO 参数对象
	 * @return xx.xx.xxx00001
	 */
	@ApiOperation(value = "根据传入父级编码+编码+格式化数值位数生成编码", notes = "根据传入父级编码+编码+格式化数值位数生成编码")
	@PostMapping("/sysservernumber/getNumberParentJoinCoeStr")
	R<String> getServerNumberJoinParent(@RequestBody SysNumberDTO sysNumberDTO);

	/**
	 * 返回map集合，包含编码数值和编码。
	 * @param sysNumberDTO 编码对象
	 * @return map集合
	 */
	@ApiOperation(value = "根据传入编码+格式化数值位数生成编码", notes = "格式化数值位数生成编码")
	@PostMapping("/sysservernumber/getNumberMap")
	R<Map<String,String>> getNumberMap(@RequestBody SysNumberDTO sysNumberDTO);

}
